package com.dingqb.ktdemo.expand

class MyclassS {
	companion object {}//伴生对象的定义形式： companion object{}  ; 扩展函数的定义如下。
}

/**
伴生对象的扩展函数的定义：类名称.Companion.fff()
 **/
fun MyclassS.Companion.funf() {
	println("this is a companion object; 伴生对象的扩展函数定义：define: companion object{} fun Myclass.Companion.funcc(){}")
}

val MyclassS.Companion.fieldd: String
	get() = "this is a companion object; 扩展属性的定义你形式"


fun main(args: Array<String>) {
	MyclassS.funf();//伴生对象的使用：类似 Java中的静态方法的定义 通过类名称.方法名调用函数
	var myclass = MyclassS();
	println(MyclassS.fieldd);

	ComObj.comFun11();
}

class ComObj {
	companion object {
		var fieldD1 = "companion object fieldd1";
		var fieldD2 = "companion object fieldd2";
		fun comFun1() {
			println("companion object fun");
		}
	}
}

fun ComObj.Companion.comFun11() {
	println("fun ComObj.Companion.comFun1");
	println("$fieldD1,$fieldD2")
}
